package fr.miage.adresse;

import java.util.ArrayList;
import java.util.Collection;

/**
 * Classe Ville
 * @author amabon
 */
public class Villes {

  public String nomVille;

  public Integer codePostal;

  public Pays paysOrigine;

  public Collection<Lieux> lieuxVilles = new ArrayList<Lieux>();

  public Collection<Telephone> tel = new ArrayList<Telephone>();




/**
 * Constructeur de la classe Villes
 * @param nomVille : nom de la ville
 * @param codePostal : code postal de la ville
 * @param paysOrigine : Pays d'origine de la ville ( pour pouvoir naviguer dans les deux sens)
 */
    public Villes(String nomVille, Integer codePostal, Pays paysOrigine) {
        this.nomVille = nomVille;
        this.codePostal = codePostal;
        this.paysOrigine = paysOrigine;
    }

 

/**
 * Retourne le codePostal
 * @return
 */
    public Integer getCodePostal() {
        return codePostal;
    }
/**
 * Modifie le code Postal
 * @param codePostal
 */
    public void setCodePostal(Integer codePostal) {
        this.codePostal = codePostal;
    }
/**
 * Retourne le tableau des villes
 * @return
 */
    public Collection<Lieux> getLieuxVilles() {
        return lieuxVilles;
    }
/**
 * Modifie le tableau des villes
 * @param lieuxVilles
 */
    public void setLieuxVilles(Collection<Lieux> lieuxVilles) {
        this.lieuxVilles = lieuxVilles;
    }
/**
 * Retourne le nom de la ville
 * @return
 */
    public String getNomVille() {
        return nomVille;
    }
/**
 * Modifie le nom de la ville
 * @param nomVille
 */
    public void setNomVille(String nomVille) {
        this.nomVille = nomVille;
    }



/**
 * Retourne le tableau des téléphones
 * @return
 */
    public Collection<Telephone> getTel() {
        return tel;
    }
/**
 * Modifie le tableau des téléphones
 * @param Tel
 */
    public void setTel(Collection<Telephone> monTel) {
        this.tel = monTel;
    }


/**
 * Permet d'ajouter des téléphones
 * @param telParam
 * @return
 */
    public boolean ajouterTelephone(Telephone telParam){
      
       boolean telephoneAjoute = false;
       if (this.tel.contains(telParam)){
           telephoneAjoute =false;
       }else{
          telephoneAjoute = true;
          this.tel.add(telParam);
       }
       return telephoneAjoute;
   }
/**
 * Permet de supprimer des téléphones
 * @param telParam
 * @return
 */
    public boolean supprimerTelephone(Telephone telParam){
    boolean telephoneSupprime = false;
    if (this.tel.contains(telParam)){
           telephoneSupprime =true;
           this.tel.remove(telParam);
       }else{
          telephoneSupprime = false;
       }
       return telephoneSupprime;
       
   }


/**
 * Permet d'ajouter des lieux
 * @param LieuxParam
 * @return
 */
public boolean ajouterLieux(Lieux lieuxParam){
      
       boolean lieuxAjoute = false;
       if(this.lieuxVilles.contains(lieuxParam)){
           lieuxAjoute =false;
       }else{
          lieuxAjoute = true;
          this.lieuxVilles.add(lieuxParam);
       }
       return lieuxAjoute;
   }
/**
 * Permet de supprimer des Lieux
 * @param LieuxParam
 * @return
 */
    public boolean supprimerLieux(Lieux monLieuxParam){
       boolean lieuxSupprime;
       lieuxSupprime = false;
        if (this.lieuxVilles.contains(monLieuxParam)){
           lieuxSupprime =true;
           this.lieuxVilles.remove(monLieuxParam);
       }else{
          lieuxSupprime = false;
       }
       return lieuxSupprime;
   }
  

}